package Arrays;


/**
 * 977 有序数组的平方
 * 给你一个按 非递减顺序 排序的整数数组 nums，返回 每个数字的平方 组成的新数组，要求也按 非递减顺序 排序。
 */
public class sortedSquares {
    /**
     * 双指针直接遍历判断就ok了，需要注意start<=end，如果不等于的话处理不了最后两个元素
     * @param nums
     * @return
     */
    public int[] sortedSquares(int[] nums) {


        if (nums.length == 0 || nums == null) return new int[0];
        int[] result = new int[nums.length];
        int start = 0;
        int end = nums.length - 1;
        int index = nums.length - 1;
        while (start <= end) {
            if (nums[start] * nums[start] > nums[end] * nums[end]) {
                result[index] = nums[start] * nums[start];
                start++;
            } else {
                result[index] = nums[end] * nums[end];
                end--;
            }
            index--;
        }
        return result;
    }
}
